Add protection from min/max macros git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@145407 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__bit_reference b/include/__bit_reference index 4621333..9ee1dd9 100644 --- a/include/__bit_reference +++ b/include/__bit_reference
@@ -14,6 +14,8 @@ #include <__config> #include <algorithm> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/__hash_table b/include/__hash_table index 4399caa..39de62a 100644 --- a/include/__hash_table +++ b/include/__hash_table
@@ -18,6 +18,8 @@ #include <algorithm> #include <cmath> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/__split_buffer b/include/__split_buffer index 33ce42d..581f159 100644 --- a/include/__split_buffer +++ b/include/__split_buffer
@@ -6,6 +6,8 @@ #include <type_traits> #include <algorithm> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/__std_stream b/include/__std_stream index 6df6556..7fe34d4 100644 --- a/include/__std_stream +++ b/include/__std_stream
@@ -17,6 +17,8 @@ #include <__locale> #include <cstdio> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/__undef_min_max b/include/__undef_min_max new file mode 100644 index 0000000..88bc53f --- /dev/null +++ b/include/__undef_min_max
@@ -0,0 +1,19 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifdef min +#warning: macro min is incompatible with C++. #undef'ing min +#undef min +#endif + +#ifdef max +#warning: macro max is incompatible with C++. #undef'ing max +#undef max +#endif
diff --git a/include/algorithm b/include/algorithm index 6749bf6..6255c52 100644 --- a/include/algorithm +++ b/include/algorithm
@@ -595,6 +595,8 @@ #include <iterator> #include <cstdlib> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/bitset b/include/bitset index c970f32..4735754 100644 --- a/include/bitset +++ b/include/bitset
@@ -129,6 +129,8 @@ #include <cassert> #endif +#include <__undef_min_max> + _LIBCPP_BEGIN_NAMESPACE_STD template <size_t _N_words, size_t _Size>
diff --git a/include/chrono b/include/chrono index 1c79f4b..0571f9d 100644 --- a/include/chrono +++ b/include/chrono
@@ -255,6 +255,8 @@ #include <ratio> #include <limits> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/deque b/include/deque index ab9ba58..f304f56 100644 --- a/include/deque +++ b/include/deque
@@ -162,6 +162,8 @@ #include <algorithm> #include <stdexcept> +#include <__undef_min_max> + _LIBCPP_BEGIN_NAMESPACE_STD template <class _Tp, class _Allocator> class __deque_base;
diff --git a/include/forward_list b/include/forward_list index 61fe290..ffd44a5 100644 --- a/include/forward_list +++ b/include/forward_list
@@ -174,6 +174,8 @@ #include <iterator> #include <algorithm> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/fstream b/include/fstream index b6a2ab0..4456c01 100644 --- a/include/fstream +++ b/include/fstream
@@ -171,6 +171,8 @@ #include <__locale> #include <cstdio> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/istream b/include/istream index 24d9f3a..f271393 100644 --- a/include/istream +++ b/include/istream
@@ -155,6 +155,8 @@ #include <__config> #include <ostream> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/limits b/include/limits index 14b49b1..ea579ad 100644 --- a/include/limits +++ b/include/limits
@@ -109,6 +109,8 @@ #include <__config> #include <type_traits> +#include <__undef_min_max> + #if defined(_MSC_VER) #include "support/win32/limits_win32.h" #endif // _MSC_VER
diff --git a/include/list b/include/list index 345f24d..add519f 100644 --- a/include/list +++ b/include/list
@@ -176,6 +176,8 @@ #include <iterator> #include <algorithm> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/locale b/include/locale index b2afbd4..5dc3ff2 100644 --- a/include/locale +++ b/include/locale
@@ -192,6 +192,8 @@ #include <nl_types.h> #endif // !_WIN32 +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/memory b/include/memory index 878dda8..7576aae 100644 --- a/include/memory +++ b/include/memory
@@ -600,6 +600,8 @@ #include <cassert> #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/mutex b/include/mutex index 37e74d6..d1d0a6e 100644 --- a/include/mutex +++ b/include/mutex
@@ -179,6 +179,8 @@ #include <tuple> #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/random b/include/random index c5c33c0..e14425d 100644 --- a/include/random +++ b/include/random
@@ -1646,6 +1646,8 @@ #include <ostream> #include <cmath> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/ratio b/include/ratio index 654cb33..eb1ad24 100644 --- a/include/ratio +++ b/include/ratio
@@ -70,6 +70,8 @@ #include <climits> #include <type_traits> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/regex b/include/regex index 048fbef..1da7b0e 100644 --- a/include/regex +++ b/include/regex
@@ -732,6 +732,8 @@ #include <vector> #include <deque> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/sstream b/include/sstream index 1b27195..22450f0 100644 --- a/include/sstream +++ b/include/sstream
@@ -175,6 +175,8 @@ #include <istream> #include <string> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/string b/include/string index 5f5a347..344bb55 100644 --- a/include/string +++ b/include/string
@@ -446,6 +446,8 @@ #include <cassert> #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/valarray b/include/valarray index 5d3154c..3ac9494 100644 --- a/include/valarray +++ b/include/valarray
@@ -346,6 +346,8 @@ #include <algorithm> #include <functional> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif
diff --git a/include/vector b/include/vector index 7f7e3d3..10702f3 100644 --- a/include/vector +++ b/include/vector
@@ -270,6 +270,8 @@ #include <__split_buffer> #include <__functional_base> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif